1. Field of the Invention
The invention relates generally to the field of computer networking. More particularly, the invention relates to a flexible mechanism for reducing the amount of control plane processing and flow detection required in a Multi-protocol Over ATM (MPOA) system.
2. Description of the Related Art
With the emergence and growing popularity of Internet, intranet, client/server and multimedia applications, an increasing percentage of network traffic is now traversing subnet boundaries. Additionally, today's networks typically include a number of Local Area Networks (LANs) implementing diverse protocols. In response to these trends, the Asynchronous Transfer Mode (ATM) Forum Technical Committee has published the Multi-Protocol Over ATM (MPOA) specification, Multi-Protocol Over ATM Version 1.0, AF-MPOA-0087.000, published July 1997 (hereinafter "MPOA," "the MPOA protocol," or "the MPOA specification"). A network viewed at the ATM layer, allows any switch with an ATM interface to directly establish a circuit or connection to any other switch connected to the same ATM network. Higher level protocol traffic is typically constrained to flow through a router when crossing subnet boundaries. MPOA removes this constraint for the most part by efficient use of ATM circuits. MPOA facilitates the transfer of inter-subnet data by providing a framework in which internetwork layer protocols and other mechanisms for communicating across subnet boundaries, such as Internet Protocol (IP), IPv6, Internetwork Packet Exchange (IPX), DECnet routing, CLNP, AppleTalk, DDP, Vines, SNA, etc., may be efficiently overlaid on top of ATM.
Generally, the MPOA protocol provides a mechanism that greatly increases the efficiency of steady stream transmissions across subnet boundaries by identifying "flows" (e.g., a uni-directional flow of data packets to a single destination internetwork layer address) and mapping them onto ATM virtual channels. After detecting a flow, the MPOA protocol establishes a path called a "shortcut," an ATM virtual channel connection (VCC), upon which data packets associated with the flow may be forwarded to avoid the hop-by-hop processing typically performed by intermediate routers along the "default path."
A simplified MPOA system 100 is illustrated by FIG. 1. The MPOA system 100 includes edge devices 110 and 140, e.g., network devices, such as LAN-to-ATM switches or other MPOA devices, that are directly connected to an ATM cloud 150 and LAN hosts and/or LAN segments. The MPOA system 100 of the present example also includes one or more intermediate network devices, such as routers 120 and 130, between edge devices 110 and 140. It is appreciated that additional intermediate network devices, such as ATM switches and routers, may be located on the data path between router 120 and router 130.
Edge devices 110 and 140 include LAN emulation clients (LECs) 114 and 144, respectively and MPOA clients (MPCs) 112 and 142, respectively. LECs perform forwarding in accordance with the ATM Forum's LAN Emulation Over ATM specification. Typically, network devices have a LEC for each emulated LAN (ELAN) interface. MPCs are MPOA protocol entities that implement the client side of the MPOA protocol. MPCs typically perform such functions as flow threshold detection, shortcut resolution, cache imposition request processing and handling of packets that arrive via a shortcut, each of which are described further below.
Routers 120 and 130 each include MPOA protocol entities that implement the server side of the MPOA protocol, MPOA server (MPS) 122 and 132, respectively. For example, the MPSs are responsible for maintaining and distributing knowledge of the topology of the network. Additionally, the routers 120 and 130 include LECs 124, 126, 134, 136 for the ELAN interfaces.
For purposes of this example, edge device 110 is assumed to be the point at which a stream of data enters the MPOA system 100 and edge device 140 is the point at which the flow exits the MPOA system 100. For example, end-station 116 coupled to a LAN port (not shown) of edge device 110 may be transmitting packets to end-station 146 coupled to a LAN port (not shown) of edge device 140. Further, this example assumes that end-stations 116 and 146 are on different subnets. Therefore, MPC 112 operates in its role as an Ingress MPC (I-MPC), MPS 122 operates in its role as an Ingress MPS (I-MPS), MPS 132 operates in its role as an Egress MPS (E-MPS), and MPC 142 operates in its role as an Egress MPC (E-MPC).
An Ingress Cache (I-Cache) 170 is maintained by MPC 112 for purposes of detecting inbound flows and keeping track of the shortcut VCC and encapsulation information (e.g., the LLC header to prepend to a packet before sending it on the shortcut) for those flows. Typically, an inbound flow is determined to exist once the MPC counts a predetermined number of packets addressed to a specific end-station within a predetermined time interval. In this example, the MPC 112 performs flow threshold detection by creating I-Cache entries and keeping packet counts for each MPS/IP address pair.
An Egress Cache (E-Cache) 180 is maintained by MPC 142 to facilitate handling of packets received on shortcuts that are to be forwarded on an outbound LAN port. E-Cache entries include, among other things, encapsulation information (e.g., the outbound DLL header to prepend to the packet before sending it to the outbound port). Encapsulation information is entered into the E-Cache 180 at the direction of the E-MPS 132 by way of a Cache Imposition Request protocol data unit (PDU) 182.
While for purposes of explanation, MPOA protocol entities are depicted as residing on separate devices, it is appreciated that two or more MPOA protocol entities may be co-located. A LAN-LAN flow, for example, may involve two MPCs that reside on the same edge device, one serving as the Ingress MPC and the other as the Egress MPC. Additionally, a single MPOA protocol entity may assume the role of both an ingress and an egress for a particular transmission path. For instance, edge devices 110 and 140 might be separated by only a single router 120 or 130, in which case, the MPS 122 or 132 would perform both ingress and egress MPS functions for data packets sourced at end-station 116 for end-station 146. Further, it is important to note that MPOA protocol entities are logical rather than physical entities and therefore may span one or more physical devices.
Exemplary MPOA protocol scenarios and associated data and control plane processing will now be briefly described. Initially, the I-Cache 170 and E-Cache 180 have no entries. Upon receiving a first packet at edge device 110 that is destined for end-station 146 (i.e., a packet containing the internetwork address of end-station 146 and the MAC address of router 120), an entry 171 is created in the I-Cache 170 and a packet count for this path is initialized to 1. The first packet destined for end-station 146 is forwarded via normal LANE procedures through LEC 114 over the default path (i.e., the hop-by-hop path from router 120 to router 130 as determined by routing protocols). Subsequent data packets destined for end-station 146 cause the packet count associated with the MAC/internetwork address pair to be incremented. That is, each packet being sent to an MPS is tallied by its destination internetwork address. These subsequent packets continue to be forwarded over the default path until an inbound flow is detected. A "flow" is said to be detected when the number of packets to a destination within a predetermined time interval exceeds a threshold value. After an inbound flow is detected, the I-MPC 112 seeks to establish a shortcut 165 to the Egress MPC serving IP destination 146. The technique of establishing shortcuts directly across an ATM network (also referred to as "shortcut resolution") involves the exchange of information in the form of MPOA requests and replies between MPCs and MPSs. MPSs communicate with each other via the Next Hop Resolution Protocol (NHRP) and convert between MPOA requests and replies and NHRP requests and replies on behalf of the MPCs. In FIG. 1, I-MPC 112 and I-MPS 122 exchange Resolution Request/Reply PDUs 172 and 174 in order to add the appropriate shortcut encapsulation information for the detected flow to the I-Cache 170. Shortcut resolution additionally includes the exchange of Cache Imposition Request/Reply PDUs 182 and 184 by E-MPS 132 and E-MPC 142 to add corresponding outbound encapsulation information to the E-Cache 180. When shortcut resolution is successful, corresponding entries containing necessary shortcut information are stored in the I-Cache 170 and E-Cache 180 for the flow. After an inbound flow has been detected and a shortcut has been resolved, a VCC is established between the edge devices 110 and 140 and subsequent packets destined for end-station 146 are sent over the shortcut, thereby reducing latency and avoiding hop-by-hop processing by the routers of ATM cloud 150. Further information regarding MPOA and more detailed scenarios are available in the MPOA specification cited above.
While MPOA attempts to optimize large scale, multiprotocol networks that are connected together with ATM, several limitations remain. For instance, MPOA does not provide a mechanism for prioritizing or distinguishing between flows. All flows are treated the same by the MPOA protocol. Therefore, a significant amount of processing (e.g., control plane processing, such as Resolution Request/Reply PDUs and Cache Imposition Request/Reply PDUs, and flow detection processing, including the update, creation, and maintenance of cache entries) may be performed to optimize traffic the network administrator would rather not optimize or which may not even be optimizable. Additionally, valuable cache space is consumed by these unwanted shortcuts which may prevent successful shortcut resolution (due to insufficient cache space) for other possible candidate flows that may carry higher priority traffic or whose optimization might otherwise be more beneficial. Moreover, this MPOA approach may interfere with network security. For example, a shortcut may allow a firewall established by the network administrator to be bypassed.